package com.ouroboroswiki.core.content.markup.processor;

import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

import com.ouroboroswiki.core.Content;
import com.ouroboroswiki.core.ContentPath;
import com.ouroboroswiki.core.ContentValidationResult;
import com.ouroboroswiki.core.Version;

public interface MarkupHandler {
	List<Node> replace(
			Object principal, 
			Element e, 
			Document parent, 
			Map<String, Content> childContent, 
			ContentPath currentPath, 
			Version version, 
			Collection<ContentValidationResult> validation,
			Map<String, Object> properties)
		throws IOException;
}
